EasyPQCTest.KeysMsgTest
A fun way to imagine how the key system would be used for a Matrix style client
public void KeysMsgTest()
{
var members = new[] { "Kirito", "Asuna", "Klein", "Lisbeth", "Silica" };
var publicKeys = new Dictionary<string, Dictionary<string, byte[]>>();
var privateKeys = new Dictionary<string, Dictionary<string, byte[]>>();
// Step 1: Everyone generates a keypair
foreach (var member in members)
{
var keys = EasyPQC.Keys.Initiate();
publicKeys[member] = keys.Item1;
privateKeys[member] = keys.Item2;
}
Console.WriteLine("Everyone has generated their keys!\n");
// Step 2: Everyone (except Kirito) establishes a shared key with Kirito
foreach (var member in members)
{
if (member == "Kirito") continue;
var shared = EasyPQC.Keys.CreateSecret(publicKeys["Kirito"]);
var sharedSecret = shared.key;
Console.WriteLine($"🔐 {member} → Kirito:");
Console.WriteLine($" Shared Secret: {Convert.ToBase64String(sharedSecret)}");
// Simulating message send using the shared key
Console.WriteLine($" Message from {member}: \"Hey Kirito, let's meet up at the mall!\"\n");
}
Console.WriteLine("SAO Mall Chat setup complete! 🎉");
}